This notebook is a companion for the article on a model describing the different modes of invasion using the tool PhysiBoSS.
PhysiBoSS is a modeling tool combining an agent-based approach for intercellular interactions and a Boolean model for the intracellular description.
We focus here on the Boolean model describing the signaling pathways inside each cell
5) Definitions of the outputs of the model
7) Combinations of inputs: ECM/TGFbeta
8) Combinations of inputs: Oxy/GF
9) Combinations of inputs: DNAdamage
11) CTNNB1 mutant
12) TP63 mutants
13) TP63 mutant with ECM/TGFbeta initial condition
14) SRC mutant
15) SRC mutant without ECM/TGFbeta initial condition
16) Model testing
17) Automatic (single/double) mutations_mutations)
The libraries related to the tools needed for this analysis were developed in the context of CoLoMoTo, an initiative of the logical community to make all tools, methodologies and models in standard format to facilitate compatibility, interoperability and reproducibilty.
import maboss
import colomoto_jupyter
import maboss_test
import ginsim
import biolqm
import boolean
import matplotlib.pyplot as plt
plt.style.use('seaborn-colorblind')
import numpy as np
import seaborn as sns
The Boolean model is simulated using MaBoSS, which is based on a stochastic simulation applied to the Boolean network. The MaBoSS model is composed of two files, one for the model description (.bnd) and the a second one for the definition of both the model and simulation parameters (.cfg).
In this notebook, we aim to show the behavior of the individual cell by fixing the values of the inputs that usually vary in the agent-based model. The purpose here is to explore the possible fates of the cell depending on the state of these inputs.
The analysis will first be done on the wild type case (with no alterations) in different initial conditions, which corresponds to the different conditions in which the cells may be found during the simulation. Next, we explore the cell dynamics in diseased conditions by simulating different gene mutations.
Here we load the .bnd and .cfg file necessary for the intracellular analysis.
The .bnd file contains the nodes and the logical formulas that regulates the interactions between genes. The .cfg file contains instead the parameters of the simulation for MaBoSS as well as the initial condition defined for the model.
We have defined a "standard initial condition", which represents a set of initial conditions for the model, defined in the MaBoSS configuration file ( .cfg provided in the supplementary materials).
The initial conditions are set as follows: ECM=0, TGFbeta=0, Neighbor=0, Oxygen=1, Growth_factor=1, DNAdamage=0 (where 0 means inactive, 1 means active). Those conditions represent a favorable proliferating condition, where all the cells have access to oxygen and nutrients, are confined but not subjected to DNA damage or crowding.
Note that the simulation is set to represent the cells in an optimal condition to grow, and hence growth factors are assumed to be in a sufficient amount to constantly activate growth and maintain basal metabolism.
intracellular_model = maboss.load("./boolean_network/intracellular_model.bnd", "./boolean_network/intracellular_model.cfg")
on = [0, 1]
off = [1, 0]
The network can be visualized using GINsim representation and exported into the standard format SBML-Qual.
def convert_and_show(model):
biolqm_model = maboss.to_biolqm(model)
lrg = biolqm.to_ginsim(biolqm_model)
return ginsim.show(lrg)
def convert_and_export(model):
biolqm_model = maboss.to_biolqm(model)
biolqm.save(biolqm_model, "mymodel.bnet", "bnet")
return
convert_and_export(intracellular_model)
convert_and_show(intracellular_model)
The model has 192 fixed points
biolqm_model = maboss.to_biolqm(intracellular_model)
fps = biolqm.fixpoints(biolqm_model)
print(len(fps), "fixpoints") # shows the number of fixpoints
192 fixpoints
tps=biolqm.trapspaces(biolqm_model)
print(len(tps), "trap spaces")
192 trap spaces
They can be visualized on a PCA plot with 3 outputs to show how they distribute among the phenotypes of interest
# Getting the list of nodes
nodes = list(fps[0].keys())
# Building a 2D numpy array with the nodes order defined above, with each fixpoint value
data = np.array([[fp[node] for node in nodes] for fp in fps])
# The array is XX fixpoints * XX nodes
data.shape
from sklearn import decomposition
from sklearn.decomposition import PCA
#pca = PCA(n_components=3)
#pca_out = pca.fit(data)
from pandas import DataFrame
# training the PCA
pca = decomposition.PCA()
pca.fit(data)
# getting the weights for original parameters
for i in range(0,3):
featureWeights = list(pca.components_[i])
weights = DataFrame(data = featureWeights)
filename = 'principal_component_' + str(i) + '.txt'
# weights.to_csv(filename, sep = '\t')
# Uncomment the last function if you wish to create the files of the weights
# Here the weights show that for PC1, RTK, p21, pRB, p27, MCL1, BCL2, BCLXL, IAPs contribute to 20% each
# For PC2, TRAIL and DR4_5 contribute negatively (-70%)
# For PC3, GF and GF_High contribute to 70%
## Visualise the results in the form of a graph
# Getting the new coordinates
X_pca = pca.transform(data)
# Plotting the steady states
plt.figure(figsize=(3, 4), dpi=200)
plt.plot(X_pca[:, 0], X_pca[:, 1], ".")
# Printing arrows, but there is too much. We need to select some nodes
#some_nodes = ["EGFR", "TP53","CDK1"]
some_nodes = ["Cell_growth", "Apoptosis","EMT"]
for some_node in some_nodes:
v = pca.components_[0:2, nodes.index(some_node)].T
plt.arrow(0, 0, v[0], v[1], color='red', width=0.01)
plt.text(v[0], v[1], some_node, color='black', ha='center', va='center', fontsize=5)
plt.xlabel("PC1: %.0f%% variance explained" % (pca.explained_variance_ratio_[0]*100))
plt.ylabel("PC2: %.0f%% variance explained" % (pca.explained_variance_ratio_[1]*100))
Text(0, 0.5, 'PC2: 9% variance explained')
The model outputs can be defined as a combination of some nodes that can be interpreted as read-outs of the model or phenotypes
set_output1 = ["Apoptosis", "Migration", "ECM_adh", "EMT", "Cell_growth", "ECM_degrad", "Cell_freeze"]
As a first exploratory analysis of the model, we simulate a wild type condition (no mutations) with random initial values as there is no information about the initial state of the model entities.
intracellular_model.param["thread_count"] = 10
intracellular_model.param["max_time"] = 100
maboss.set_nodes_istate(intracellular_model, intracellular_model.network.keys(), {0: 0.5, 1: 0.5})
maboss.set_output(intracellular_model, set_output1)
res1 = intracellular_model.run()
res1.plot_piechart()
Note that every pie in the pie chart corresponds to the sum of the probabilities of all the stable states that have the corresponding output nodes equal to 1.
We can check the existence of limit cycles in the model by computing the entropy and the transition entropy which measures the internal chaos of the system. The obtained signature confirms the presence of a limit cycle but that cannot be determined easily
res1.plot_entropy_trajectory()
plt.title('WT entropy')
Text(0.5, 1.0, 'WT entropy')
The simulation of MaBoSS can also show the probability for a node to be active in wild type and random initial conditions.
res1.plot_node_trajectory()
for phenotype in set_output1:
try:
print(phenotype, ": ", res1.get_last_nodes_probtraj()[phenotype].values[0])
except:
print(phenotype, ": ", 0)
Apoptosis : 0.1506 Migration : 0.546 ECM_adh : 0.546 EMT : 0.546 Cell_growth : 0.38589999999999997 ECM_degrad : 0.3923 Cell_freeze : 0.2288
These conditions do not correspond to real physiological conditions. We can show that all phenotypes are reachable, though.
Next, we show which solutions are favored with a particular combination of inputs.
We explore here the possible states of the cells at the border of the spheroid, which get in contact with the ECM and TGFbeta.
i_condition = intracellular_model.copy()
i_condition.param["max_time"] = 100
maboss.set_nodes_istate(i_condition, i_condition.network.keys(), off)
i_condition.network.set_istate("Oxy",on)
i_condition.network.set_istate("GF",on)
i_condition.network.set_istate("Neigh",on)
i_condition.network.set_istate("ECM",on)
i_condition.network.set_istate("TGFbeta",on)
i_condition.network.set_istate("DNAdamage",off)
maboss.set_output(i_condition, set_output1)
res2 = i_condition.run()
res2.plot_piechart()
res2.plot_node_trajectory()
for phenotype in set_output1:
try:
print(phenotype, ": ", res2.get_last_nodes_probtraj()[phenotype].values[0])
except:
print(phenotype, ": ", 0)
Apoptosis : 0 Migration : 1.0 ECM_adh : 1.0 EMT : 1.0 Cell_growth : 1.0 ECM_degrad : 0 Cell_freeze : 0
The simulation shows that the cell have the capacity to migrate and divide but not to degrade the ECM.
We explore now the phenotypes in the case of contact with ECM but in absence of Growth Factor
i_condition1_1 = intracellular_model.copy()
i_condition1_1.param["max_time"] = 30
maboss.set_nodes_istate(i_condition1_1, i_condition1_1.network.keys(), off)
i_condition1_1.network.set_istate("Oxy",on)
i_condition1_1.network.set_istate("GF",off)
i_condition1_1.network.set_istate("Neigh",on)
i_condition1_1.network.set_istate("ECM",on)
i_condition1_1.network.set_istate("TGFbeta",on)
i_condition1_1.network.set_istate("DNAdamage",off)
maboss.set_output(i_condition1_1, set_output1)
res2_1 = i_condition1_1.run()
res2_1.plot_piechart()
res2_1.plot_node_trajectory()
for phenotype in set_output1:
try:
print(phenotype, ": ", res2_1.get_last_nodes_probtraj()[phenotype].values[0])
except:
print(phenotype, ": ", 0)
Apoptosis : 0 Migration : 1.0 ECM_adh : 1.0 EMT : 1.0 Cell_growth : 1.0 ECM_degrad : 0 Cell_freeze : 0
The presence or absence of growth factors does not seem to affect the fate of the cells
We explore now the phenotypes in the case of contact with ECM but in absence of Growth Factor and with DNA damage .
i_condition1_2 = intracellular_model.copy()
i_condition1_2.param["max_time"] = 150
maboss.set_nodes_istate(i_condition1_2, i_condition1_2.network.keys(), off)
i_condition1_2.network.set_istate("Oxy",on)
i_condition1_2.network.set_istate("GF",off)
i_condition1_2.network.set_istate("Neigh",on)
i_condition1_2.network.set_istate("ECM",on)
i_condition1_2.network.set_istate("TGFbeta",on)
i_condition1_2.network.set_istate("DNAdamage",on)
maboss.set_output(i_condition1_2, set_output1)
res2_2 = i_condition1_2.run()
res2_2.plot_piechart()
res2_2.plot_node_trajectory()
for phenotype in set_output1:
try:
print(phenotype, ": ", res2_2.get_last_nodes_probtraj()[phenotype].values[0])
except:
print(phenotype, ": ", 0)
Apoptosis : 0.7701 Migration : 0.2299 ECM_adh : 0.2299 EMT : 0.2299 Cell_growth : 0.2299 ECM_degrad : 0.0118 Cell_freeze : 0.7701
In the presence of DNA damage, a big majority of the cells will go into apoptosis or stop growing..
We explore here the possible states of the cells inside the spheroid, without contact with the ECM, but in optimal conditions to grow (Grow factor and Oxygen ON)
i_condition2 = intracellular_model.copy()
i_condition2.param["max_time"] = 30
maboss.set_nodes_istate(i_condition2, i_condition2.network.keys(), off)
i_condition2.network.set_istate("Oxy",on)
i_condition2.network.set_istate("GF",on)
i_condition2.network.set_istate("Neigh",on)
i_condition2.network.set_istate("ECM",off)
i_condition2.network.set_istate("TGFbeta",off)
i_condition2.network.set_istate("DNAdamage",off)
maboss.set_output(i_condition2, set_output1)
res3 = i_condition2.run()
res3.plot_piechart()
res3.plot_node_trajectory()
for phenotype in set_output1:
try:
print(phenotype, ": ", res3.get_last_nodes_probtraj()[phenotype].values[0])
except:
print(phenotype, ": ", 0)
Apoptosis : 0 Migration : 0 ECM_adh : 0 EMT : 0 Cell_growth : 1.0 ECM_degrad : 0 Cell_freeze : 1.0
In the same condition but without Growth Factor, the cells will stop growing, rimaining in a freezing condition.
i_condition2_bis = intracellular_model.copy()
i_condition2_bis.param["max_time"] = 30
maboss.set_nodes_istate(i_condition2_bis, i_condition2_bis.network.keys(), off)
i_condition2_bis.network.set_istate("Oxy",on)
i_condition2_bis.network.set_istate("GF",off)
i_condition2_bis.network.set_istate("Neigh",on)
i_condition2_bis.network.set_istate("ECM",off)
i_condition2_bis.network.set_istate("TGFbeta",off)
i_condition2_bis.network.set_istate("DNAdamage",off)
maboss.set_output(i_condition2_bis, set_output1)
res3_bis = i_condition2_bis.run()
res3_bis.plot_piechart()
We explore here the possible states of the cells at the border of the spheroid, in high pressure conditions (crowding), which cause nucleus deformation and as consequence, the rupture of nuclear envelope. This is then interpretated as DNA damage in the model. This situation differs from the one illustrated from i_condition1_2 for the presence of Growth Factor, which in i_condition1_2 was absent.
i_condition3 = intracellular_model.copy()
i_condition3.param["max_time"] = 150
maboss.set_nodes_istate(i_condition3, i_condition3.network.keys(), off)
i_condition3.network.set_istate("Oxy",on)
i_condition3.network.set_istate("GF",on)
i_condition3.network.set_istate("Neigh",on)
i_condition3.network.set_istate("ECM",on)
i_condition3.network.set_istate("TGFbeta",on)
i_condition3.network.set_istate("DNAdamage",on)
maboss.set_output(i_condition3, set_output1)
res4 = i_condition3.run()
res4.plot_piechart()
res4.plot_node_trajectory()
for phenotype in set_output1:
try:
print(phenotype, ": ", res4.get_last_nodes_probtraj()[phenotype].values[0])
except:
print(phenotype, ": ", 0)
Apoptosis : 0 Migration : 0.2311 ECM_adh : 0.2311 EMT : 0.2311 Cell_growth : 1.0 ECM_degrad : 0.0126 Cell_freeze : 0.7689
The rupture of nuclear envelope, cause the activation of p63 that as conquence triggers the secretion of MMPs. This allows the degradation of the ECM and diminuish the pressure on the nucleus. Without DNA damage, the cell can undergo EMT and invade. However, for high value of max time, the percentage of cells that can degrade ECM is very low (1.26%). To cope with this problem, we want to look at the transient effects that are more evident for max time < 20.
i_condition3_2 = intracellular_model.copy()
i_condition3_2.param["max_time"] = 20
maboss.set_nodes_istate(i_condition3_2, i_condition3_2.network.keys(), off)
i_condition3_2.network.set_istate("Oxy",on)
i_condition3_2.network.set_istate("GF",on)
i_condition3_2.network.set_istate("Neigh",on)
i_condition3_2.network.set_istate("ECM",on)
i_condition3_2.network.set_istate("TGFbeta",on)
i_condition3_2.network.set_istate("DNAdamage",on)
maboss.set_output(i_condition3_2, set_output1)
res4_2 = i_condition3_2.run()
res4_2.plot_piechart()
res4_2.plot_node_trajectory()
for phenotype in set_output1:
try:
print(phenotype, ": ", res4_2.get_last_nodes_probtraj()[phenotype].values[0])
except:
print(phenotype, ": ", 0)
Apoptosis : 0 Migration : 0.22990000000000002 ECM_adh : 0.442705 EMT : 0.434918 Cell_growth : 0.9999999999999999 ECM_degrad : 0.47975500000000004 Cell_freeze : 0.542064
At time step == 20 the percentage of cells able to degrade the ECM is around 48%. To take this into account in the PhysiBoSS simulation we set the MaBoSS max_time to 12. Doing so, the transient phenotypes of MaBoSS will be more evident in PhysiBoSS simulation.
In the following case, we explore the effect of DNAdamage on the model in absence of growth factor (GF) and oxygen for the portion of cells not in contact with the ECM.
i_condition4 = intracellular_model.copy()
i_condition4.param["max_time"] = 30
maboss.set_nodes_istate(i_condition4, i_condition4.network.keys(), off)
i_condition4.network.set_istate("Oxy",off)
i_condition4.network.set_istate("GF",off)
i_condition4.network.set_istate("Neigh",on)
i_condition4.network.set_istate("ECM",off)
i_condition4.network.set_istate("TGFbeta",off)
i_condition4.network.set_istate("DNAdamage",on)
maboss.set_output(i_condition4, set_output1)
res5 = i_condition4.run()
res5.plot_piechart()
res5.plot_node_trajectory()
for phenotype in set_output1:
try:
print(phenotype, ": ", res5.get_last_nodes_probtraj()[phenotype].values[0])
except:
print(phenotype, ": ", 0)
Apoptosis : 1.0 Migration : 0 ECM_adh : 0 EMT : 0 Cell_growth : 0 ECM_degrad : 0.9102 Cell_freeze : 1.0
We notice how, in absence of GF, the model changed to an apoptotic phenotype. The growh factor input activates the ERK node in the intracellular model, which is necessary to substain the growth of the cells. In the model presented in the paper we decided to focus on the invasion aspect. For this reason, we run all the simulations in the best condition for the cells to grow justifying the presence of GF in most of our simulations.
The model can be used to perform in silico experiments and test the importance of each component of the model and their contribution to the phenotypes. We tested the knock out and knock in on some of the components of the model below.
# Initial condition corresponds to i_condition2 defined in the wild type simulation
mutant2_simulation = maboss.copy_and_mutate(i_condition, ["CTNNB1"], "ON")
mut_res = mutant2_simulation.run()
mut_res.plot_piechart()
mut_res.plot_node_trajectory()
#mut_res.get_last_nodes_probtraj()["ECM_degrad"].values[0]
Conclusion: beta-catenin could be a potential target in the model to stop the release of MMPs and so the process of metastatis. However, this mutation does not prevent the cells from going through the EMT process and the tumor to growth.
# Initial condition corresponds to a random initial condition as defined in the wild type simulation
intracellular_model.param["max_time"] = 40
mutant_simulation = maboss.copy_and_mutate(intracellular_model, ["p63"], "ON")
maboss.set_output(mutant_simulation, set_output1)
mut_res = mutant_simulation.run()
emt = mut_res.get_last_nodes_probtraj()["EMT"].values[0]
degrad = mut_res.get_last_nodes_probtraj()["ECM_degrad"].values[0]
print("Percentage EMT: ", emt)
print("Percentage ECM_degrad: ", degrad)
mut_res.plot_piechart()
Percentage EMT: 0.588096 Percentage ECM_degrad: 1.0
mut_res.plot_node_trajectory()
for phenotype in set_output1:
try:
print(phenotype, ": ", mut_res.get_last_nodes_probtraj()[phenotype].values[0])
except:
print(phenotype, ": ", 0)
Apoptosis : 0.2072 Migration : 0 ECM_adh : 0.21800000000000003 EMT : 0.588096 Cell_growth : 0.40159999999999996 ECM_degrad : 1.0 Cell_freeze : 0.20589999999999997
Conclusion: overexpression of p63 on WT model increase the release of MMPs up to 100%, matching the results obtained from Lodillinski et al.
mutant_simulation = maboss.copy_and_mutate(intracellular_model, ["p63"], "OFF")
maboss.set_output(mutant_simulation, set_output1)
mut_res = mutant_simulation.run()
mut_res.plot_piechart()
emt = mut_res.get_last_nodes_probtraj()["EMT"].values[0]
degrad = mut_res.get_last_nodes_probtraj()["ECM_degrad"].values[0]
print("Percentage EMT: ", emt)
print("Percentage ECM_degrad: ", degrad)
Percentage EMT: 0.620065 Percentage ECM_degrad: 0.25196500000000005
/home/marco/anaconda3/envs/MaBoSS_env/lib/python3.9/site-packages/maboss/figures.py:86: MatplotlibDeprecationWarning: normalize=None does not normalize if the sum is less than 1 but this behavior is deprecated since 3.3 until two minor releases later. After the deprecation period the default value will be normalize=True. To prevent normalization pass normalize=False ax.pie(plot_line, labels=plotting_labels, radius=1.2,
Conclusion: The knock-out of p63 on WT model partially decreases the release of MMPs. To have a better understanding of the impact of overexpression of p63, we simulate next two different scenarios, with different initial conditions.
mut_res.plot_node_trajectory()
for phenotype in set_output1:
try:
print(phenotype, ": ", mut_res.get_last_nodes_probtraj()[phenotype].values[0])
except:
print(phenotype, ": ", 0)
Apoptosis : 0.10909999999999999 Migration : 0.6150760000000001 ECM_adh : 0.6134000000000001 EMT : 0.620065 Cell_growth : 0.406 ECM_degrad : 0.25196500000000005 Cell_freeze : 0.18439999999999998
mutant_simulation = maboss.copy_and_mutate(i_condition, ["p63"], "ON")
maboss.set_output(mutant_simulation, set_output1)
mut_res = mutant_simulation.run()
mut_res.plot_piechart()
try:
emt = mut_res.get_last_nodes_probtraj()["EMT"].values[0]
except:
emt = 0
degrad = mut_res.get_last_nodes_probtraj()["ECM_degrad"].values[0]
print("Percentage EMT: ", emt)
print("Percentage ECM_degrad: ", degrad)
Percentage EMT: 1.0 Percentage ECM_degrad: 1.0
Conclusion: the initial condition applied for this case, simulate those cells at the border of the tumor in direct contact with the ECM. Overexpression of p63 leads totally leads to MMPs release which cause the degradation of the ECM. At the same time, p63 inhibit migration. This is in accord with the results from Lodillinski et al.
mutant_simulation = maboss.copy_and_mutate(i_condition, ["p63"], "OFF")
maboss.set_output(mutant_simulation, set_output1)
mut_res = mutant_simulation.run()
mut_res.plot_piechart()
try:
emt = mut_res.get_last_nodes_probtraj()["EMT"].values[0]
except:
emt = 0
try:
degrad = mut_res.get_last_nodes_probtraj()["ECM_degrad"].values[0]
except:
degrad = 0
print("Percentage EMT: ", emt)
print("Percentage ECM_degrad: ", degrad)
Percentage EMT: 1.0 Percentage ECM_degrad: 0
Conclusion: The knock-out of p63 in this scenario decreases the release of MMPs and allows the transition to a mesenchymal state. This is partially in accordance with the results from Lodillinsky: Knock-out of p63 should totally block MMPs release, confining the cells and avoiding metastasis.
In this simulation, we test the effect of SRC activation on the model.
mutant_simulation5 = maboss.copy_and_mutate(intracellular_model, ["SRC"], "ON")
mut_res5 = mutant_simulation5.run()
mut_res5.plot_piechart()
print("Migration: ", mut_res5.get_last_nodes_probtraj()["Migration"].values[0])
print("EMT: ", mut_res5.get_last_nodes_probtraj()["EMT"].values[0])
Migration: 0.7613 EMT: 1.0
/Users/laurence/opt/miniconda3/envs/colosys/lib/python3.7/site-packages/maboss/figures.py:87: MatplotlibDeprecationWarning: normalize=None does not normalize if the sum is less than 1 but this behavior is deprecated since 3.3 until two minor releases later. After the deprecation period the default value will be normalize=True. To prevent normalization pass normalize=False startangle=90, colors=color_list, **opts)
Conclusion: SRC overexpression in WT model increase the possibility for migration and EMT.
intracellular_model.param["max_time"] = 100
mutant_simulation6 = maboss.copy_and_mutate(intracellular_model, ["SRC"], "OFF")
mut_res6 = mutant_simulation6.run()
mut_res6.plot_piechart()
print("Migration: ", mut_res6.get_last_nodes_probtraj()["Migration"].values[0])
print("EMT: ", mut_res6.get_last_nodes_probtraj()["EMT"].values[0])
Migration: 0.1827 EMT: 0.37970000000000004
#mut_res6.plot_trajectory()
mut_res6.get_nodes_probtraj().plot(legend=True)
<AxesSubplot:>
Conclusion: Knock-out of SRC partially inhibits the formation of mesenchymal phenotypes. This is in accordance with the fact that SRC is involved in many mechanisms, like adhesion, migration and degradation of ECM, forming complexes with FAK and promoting mesenchymal phenotype.
mutant_simulation7 = maboss.copy_and_mutate(i_condition2, ["SRC"], "ON")
mut_res7 = mutant_simulation7.run()
mut_res7.plot_piechart()
print("Migration: ", mut_res7.get_last_nodes_probtraj()["Migration"].values[0])
print("EMT: ", mut_res7.get_last_nodes_probtraj()["EMT"].values[0])
Migration: 1.0 EMT: 1.0
Conclusion: the results obtained are in accordance with the experimental results (see main article). Cells in the middle of the monolayer, upon activation of SRC, develop a mesenchymal-like phenotype.
mutant_simulation8 = maboss.copy_and_mutate(i_condition2, ["SRC"], "OFF")
mut_res8 = mutant_simulation8.run()
mut_res8.plot_piechart()
#print(mut_res8.get_last_nodes_probtraj()["Migration"].values[0])
#print(mut_res8.get_last_nodes_probtraj()["EMT"].values[0])
Conclusion: knock-out of SRC prevents the mesenchymal phenotype in cells in the middle of the layer.
In this section, we use a tool we developed, MaboSS_test to verify that the model is able to reproduce observations or reported behaviors. These experimental observations are translated into a computer-readable format for fast-checking.
init_condition = {"Oxy":[0, 1], "Neigh":[0, 1], "GF":[0, 1], "DNAdamage":[1, 0], "ECM":[0, 1]}
p63_inhibition = {"p63":"OFF"}
p63_activation = {"p63":"ON"}
SRC_inhibition = {"SRC":"OFF"}
SRC_activation = {"SRC":"ON"}
In this simulation, we test that when p63 is overexpressed (or constitutively active), the probability of activating MMPs increase when compared to the wild type case.
For all the tests below the same format is applied: [mutation to simulate, initial condition, observable (which read-out), behavior (increase, decrease)]
test_model = i_condition.copy()
run_test_model = maboss_test.MaBoSSTestCase(test_model)
run_test_model.assertStateProbabilityEvolution(p63_activation, init_condition, {"MMPs":1}, "increase")
True! The new probability of reaching the state is: 1.0 The old one is: 0
We then verify that the probability to activate MMPs decreases in the case of TP63 knock out.
test_model = i_condition.copy()
run_test_model = maboss_test.MaBoSSTestCase(test_model)
run_test_model.assertStateProbabilityEvolution(p63_inhibition, init_condition, {"MMPs":1}, "decrease")
False! The new probability of reaching the state is: 0 The old one is: 0
We then verify that the probability to activate EMT increase in the case of SRC overexpression.
test_model = i_condition2.copy()
run_test_model = maboss_test.MaBoSSTestCase(test_model)
run_test_model.assertStateProbabilityEvolution(SRC_activation, init_condition, {"EMT":1}, "increase")
False! The new probability of reaching the state is: 1.0 The old one is: 1.0
We then verify that the probability to activate EMT decrease in the case of SRC knock-out.
test_model = i_condition2.copy()
run_test_model = maboss_test.MaBoSSTestCase(test_model)
run_test_model.assertStateProbabilityEvolution(SRC_inhibition, init_condition, {"EMT":1}, "decrease")
False! The new probability of reaching the state is: 1.0 The old one is: 1.0
We then verify that the probability to activate Migration increase in the case of SRC overexpression.
test_model = i_condition2.copy()
run_test_model = maboss_test.MaBoSSTestCase(test_model)
run_test_model.assertStateProbabilityEvolution(SRC_activation, init_condition, {"Migration":1}, "increase")
False! The new probability of reaching the state is: 1.0 The old one is: 1.0
We then verify that the probability to activate Migration decrease in the case of SRC knock-out.
test_model = i_condition2.copy()
run_test_model = maboss_test.MaBoSSTestCase(test_model)
run_test_model.assertStateProbabilityEvolution(SRC_inhibition, init_condition, {"Migration":1}, "decrease")
True! The new probability of reaching the state is: 0 The old one is: 1.0
Conclusion: we verified that in the intracellular model, p63 directly control the activation of MMPs, proving to be a good candidate to stop tumor progression, inhibiting the release of matrix metalloproteases. On the other hand, overexpression of SRC leads those cells in the middle of the monolayer, in an epithelial state, to differentiate into mesenchymal phenotype. Knock-out of SRC instead, block this differentiation, preventing the switch to mesenchymal phenotype.
Here we perform a sensititvity analysis on the model, triggering one or two mutations at the time over the nodes on the network. The purpose is to search for single or double mutants that exhibit interesting phenotypes, such as complete loss of migration, apoptosis, etc.
def simulate_single_mutants(model, list_nodes, sign="BOTH"):
list_single_mutants = []
if (sign == "BOTH" or sign == "ON"):
list_single_mutants += [(node, "ON") for node in list_nodes]
if (sign == "BOTH" or sign == "OFF"):
list_single_mutants += [(node, "OFF") for node in list_nodes]
res = {}
for single_mutant in list_single_mutants:
t_model = model.copy()
t_model.mutate(*single_mutant)
res.update({single_mutant: t_model.run()})
return res
def simulate_double_mutants(model, list_nodes, sign="BOTH"):
list_single_mutants = []
if (sign == "BOTH" or sign == "ON"):
list_single_mutants += [(node, "ON") for node in list_nodes]
if (sign == "BOTH" or sign == "OFF"):
list_single_mutants += [(node, "OFF") for node in list_nodes]
list_double_mutants = [(a, b) for idx, a in enumerate(list_single_mutants) for b in list_single_mutants[idx + 1:] if a[0] != b[0]]
res = {}
for double_mutant in list_double_mutants:
t_model = model.copy()
t_model.mutate(*(double_mutant[0]))
t_model.mutate(*(double_mutant[1]))
res.update({double_mutant: t_model.run()})
return res
def filter_sensititivy(results, state=None, node=None, minimum=None, maximum=None):
ret_res = {}
for (mutant, res) in results.items():
if state is not None:
t_res = res.get_last_states_probtraj()
if state in t_res.columns:
if minimum is not None and maximum is not None:
if t_res[state].values[0] > minimum and t_res[state].values[0] < maximum:
ret_res.update({mutant: res})
elif minimum is not None and t_res[state].values[0] > minimum:
ret_res.update({mutant: res})
elif maximum is not None and t_res[state].values[0] < maximum:
ret_res.update({mutant: res})
elif maximum is not None and minimum is None:
ret_res.update({mutant:res})
elif node is not None:
t_res = res.get_last_nodes_probtraj()
if node in t_res.columns:
if minimum is not None and maximum is not None:
if t_res[node].values[0] > minimum and t_res[node].values[0] < maximum:
ret_res.update({mutant: res})
elif minimum is not None and t_res[node].values[0] > minimum:
ret_res.update({mutant: res})
elif maximum is not None and t_res[node].values[0] < maximum:
ret_res.update({mutant: res})
elif maximum is not None and minimum is None:
ret_res.update({mutant: res})
return ret_res
intracellular_model.network.keys()
target_genes = ["AKT1", "CTNNB1", 'DKK1', 'AKT2', 'RAC1', 'YAP1', 'PIK3CA', 'ERK', 'p21', 'SMAD', 'VIM', 'p53'
, 'p63', 'p73', 'miR203', 'miR34', 'miR200', 'TGFbetaR', 'FAK']
i_condition4 = intracellular_model.copy()
i_condition4.param["max_time"] = 30
maboss.set_nodes_istate(i_condition4, i_condition4.network.keys(), off)
i_condition4.network.set_istate("Oxy",on)
i_condition4.network.set_istate("GF",on)
i_condition4.network.set_istate("Neigh",off)
i_condition4.network.set_istate("ECM",on)
i_condition4.network.set_istate("TGFbeta",on)
i_condition4.network.set_istate("DNAdamage",off)
maboss.set_output(i_condition4, set_output1)
res_single = simulate_single_mutants(i_condition, target_genes)
for mutant, res in res_single.items():
print(mutant)
res.plot_piechart()
plt.title(mutant)
('AKT1', 'ON')
('CTNNB1', 'ON')
('DKK1', 'ON')
('AKT2', 'ON')
('RAC1', 'ON')
('YAP1', 'ON')
('PIK3CA', 'ON')
('ERK', 'ON')
('p21', 'ON')
('SMAD', 'ON')
('VIM', 'ON')
('p53', 'ON')
('p63', 'ON')
('p73', 'ON')
('miR203', 'ON')
('miR34', 'ON')
('miR200', 'ON')
('TGFbetaR', 'ON')
('FAK', 'ON')
('AKT1', 'OFF')
('CTNNB1', 'OFF')
('DKK1', 'OFF')
('AKT2', 'OFF')
('RAC1', 'OFF')
('YAP1', 'OFF')
('PIK3CA', 'OFF')
('ERK', 'OFF')
('p21', 'OFF')
('SMAD', 'OFF')
/Users/laurence/opt/miniconda3/envs/colosys/lib/python3.7/site-packages/maboss/results/baseresult.py:102: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`). _, axes = plt.subplots(1,1)
('VIM', 'OFF')
('p53', 'OFF')
('p63', 'OFF')
('p73', 'OFF')
('miR203', 'OFF')
('miR34', 'OFF')
('miR200', 'OFF')
('TGFbetaR', 'OFF')
('FAK', 'OFF')
res_double = simulate_double_mutants(i_condition, target_genes)
for mutant, res in res_double.items():
print(mutant)
res.plot_piechart()
plt.title(mutant)
(('AKT1', 'ON'), ('CTNNB1', 'ON'))
(('AKT1', 'ON'), ('DKK1', 'ON'))
(('AKT1', 'ON'), ('AKT2', 'ON'))
(('AKT1', 'ON'), ('RAC1', 'ON'))
(('AKT1', 'ON'), ('YAP1', 'ON'))
(('AKT1', 'ON'), ('PIK3CA', 'ON'))
(('AKT1', 'ON'), ('ERK', 'ON'))
(('AKT1', 'ON'), ('p21', 'ON'))
(('AKT1', 'ON'), ('SMAD', 'ON'))
(('AKT1', 'ON'), ('VIM', 'ON'))
(('AKT1', 'ON'), ('p53', 'ON'))
(('AKT1', 'ON'), ('p63', 'ON'))
(('AKT1', 'ON'), ('p73', 'ON'))
(('AKT1', 'ON'), ('miR203', 'ON'))
(('AKT1', 'ON'), ('miR34', 'ON'))
(('AKT1', 'ON'), ('miR200', 'ON'))
(('AKT1', 'ON'), ('TGFbetaR', 'ON'))
(('AKT1', 'ON'), ('FAK', 'ON'))
(('AKT1', 'ON'), ('CTNNB1', 'OFF'))
(('AKT1', 'ON'), ('DKK1', 'OFF'))
(('AKT1', 'ON'), ('AKT2', 'OFF'))
(('AKT1', 'ON'), ('RAC1', 'OFF'))
(('AKT1', 'ON'), ('YAP1', 'OFF'))
(('AKT1', 'ON'), ('PIK3CA', 'OFF'))
(('AKT1', 'ON'), ('ERK', 'OFF'))
(('AKT1', 'ON'), ('p21', 'OFF'))
(('AKT1', 'ON'), ('SMAD', 'OFF'))
(('AKT1', 'ON'), ('VIM', 'OFF'))
/Users/laurence/opt/miniconda3/envs/colosys/lib/python3.7/site-packages/maboss/results/baseresult.py:102: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`). _, axes = plt.subplots(1,1)
(('AKT1', 'ON'), ('p53', 'OFF'))
(('AKT1', 'ON'), ('p63', 'OFF'))
(('AKT1', 'ON'), ('p73', 'OFF'))
(('AKT1', 'ON'), ('miR203', 'OFF'))
(('AKT1', 'ON'), ('miR34', 'OFF'))
(('AKT1', 'ON'), ('miR200', 'OFF'))
(('AKT1', 'ON'), ('TGFbetaR', 'OFF'))
(('AKT1', 'ON'), ('FAK', 'OFF'))
(('CTNNB1', 'ON'), ('DKK1', 'ON'))
(('CTNNB1', 'ON'), ('AKT2', 'ON'))
(('CTNNB1', 'ON'), ('RAC1', 'ON'))
(('CTNNB1', 'ON'), ('YAP1', 'ON'))
(('CTNNB1', 'ON'), ('PIK3CA', 'ON'))
(('CTNNB1', 'ON'), ('ERK', 'ON'))
(('CTNNB1', 'ON'), ('p21', 'ON'))
(('CTNNB1', 'ON'), ('SMAD', 'ON'))
(('CTNNB1', 'ON'), ('VIM', 'ON'))
(('CTNNB1', 'ON'), ('p53', 'ON'))
(('CTNNB1', 'ON'), ('p63', 'ON'))
(('CTNNB1', 'ON'), ('p73', 'ON'))
(('CTNNB1', 'ON'), ('miR203', 'ON'))
(('CTNNB1', 'ON'), ('miR34', 'ON'))
(('CTNNB1', 'ON'), ('miR200', 'ON'))
(('CTNNB1', 'ON'), ('TGFbetaR', 'ON'))
(('CTNNB1', 'ON'), ('FAK', 'ON'))
(('CTNNB1', 'ON'), ('AKT1', 'OFF'))
(('CTNNB1', 'ON'), ('DKK1', 'OFF'))
(('CTNNB1', 'ON'), ('AKT2', 'OFF'))
(('CTNNB1', 'ON'), ('RAC1', 'OFF'))
(('CTNNB1', 'ON'), ('YAP1', 'OFF'))
(('CTNNB1', 'ON'), ('PIK3CA', 'OFF'))
(('CTNNB1', 'ON'), ('ERK', 'OFF'))
(('CTNNB1', 'ON'), ('p21', 'OFF'))
(('CTNNB1', 'ON'), ('SMAD', 'OFF'))
(('CTNNB1', 'ON'), ('VIM', 'OFF'))
(('CTNNB1', 'ON'), ('p53', 'OFF'))
(('CTNNB1', 'ON'), ('p63', 'OFF'))
(('CTNNB1', 'ON'), ('p73', 'OFF'))
(('CTNNB1', 'ON'), ('miR203', 'OFF'))
(('CTNNB1', 'ON'), ('miR34', 'OFF'))
(('CTNNB1', 'ON'), ('miR200', 'OFF'))
(('CTNNB1', 'ON'), ('TGFbetaR', 'OFF'))
(('CTNNB1', 'ON'), ('FAK', 'OFF'))
(('DKK1', 'ON'), ('AKT2', 'ON'))
(('DKK1', 'ON'), ('RAC1', 'ON'))
(('DKK1', 'ON'), ('YAP1', 'ON'))
(('DKK1', 'ON'), ('PIK3CA', 'ON'))
(('DKK1', 'ON'), ('ERK', 'ON'))
(('DKK1', 'ON'), ('p21', 'ON'))
(('DKK1', 'ON'), ('SMAD', 'ON'))
(('DKK1', 'ON'), ('VIM', 'ON'))
(('DKK1', 'ON'), ('p53', 'ON'))
(('DKK1', 'ON'), ('p63', 'ON'))
(('DKK1', 'ON'), ('p73', 'ON'))
(('DKK1', 'ON'), ('miR203', 'ON'))
(('DKK1', 'ON'), ('miR34', 'ON'))
(('DKK1', 'ON'), ('miR200', 'ON'))
(('DKK1', 'ON'), ('TGFbetaR', 'ON'))
(('DKK1', 'ON'), ('FAK', 'ON'))
(('DKK1', 'ON'), ('AKT1', 'OFF'))
(('DKK1', 'ON'), ('CTNNB1', 'OFF'))
/Users/laurence/opt/miniconda3/envs/colosys/lib/python3.7/site-packages/maboss/figures.py:87: MatplotlibDeprecationWarning: normalize=None does not normalize if the sum is less than 1 but this behavior is deprecated since 3.3 until two minor releases later. After the deprecation period the default value will be normalize=True. To prevent normalization pass normalize=False startangle=90, colors=color_list, **opts)
(('DKK1', 'ON'), ('AKT2', 'OFF'))
(('DKK1', 'ON'), ('RAC1', 'OFF'))
(('DKK1', 'ON'), ('YAP1', 'OFF'))
(('DKK1', 'ON'), ('PIK3CA', 'OFF'))
(('DKK1', 'ON'), ('ERK', 'OFF'))
(('DKK1', 'ON'), ('p21', 'OFF'))
(('DKK1', 'ON'), ('SMAD', 'OFF'))
(('DKK1', 'ON'), ('VIM', 'OFF'))
(('DKK1', 'ON'), ('p53', 'OFF'))
(('DKK1', 'ON'), ('p63', 'OFF'))
(('DKK1', 'ON'), ('p73', 'OFF'))
(('DKK1', 'ON'), ('miR203', 'OFF'))
(('DKK1', 'ON'), ('miR34', 'OFF'))
(('DKK1', 'ON'), ('miR200', 'OFF'))
(('DKK1', 'ON'), ('TGFbetaR', 'OFF'))
(('DKK1', 'ON'), ('FAK', 'OFF'))
(('AKT2', 'ON'), ('RAC1', 'ON'))
(('AKT2', 'ON'), ('YAP1', 'ON'))
(('AKT2', 'ON'), ('PIK3CA', 'ON'))
(('AKT2', 'ON'), ('ERK', 'ON'))
(('AKT2', 'ON'), ('p21', 'ON'))
(('AKT2', 'ON'), ('SMAD', 'ON'))
(('AKT2', 'ON'), ('VIM', 'ON'))
(('AKT2', 'ON'), ('p53', 'ON'))
(('AKT2', 'ON'), ('p63', 'ON'))
(('AKT2', 'ON'), ('p73', 'ON'))
(('AKT2', 'ON'), ('miR203', 'ON'))
(('AKT2', 'ON'), ('miR34', 'ON'))
(('AKT2', 'ON'), ('miR200', 'ON'))
(('AKT2', 'ON'), ('TGFbetaR', 'ON'))
(('AKT2', 'ON'), ('FAK', 'ON'))
(('AKT2', 'ON'), ('AKT1', 'OFF'))
(('AKT2', 'ON'), ('CTNNB1', 'OFF'))
(('AKT2', 'ON'), ('DKK1', 'OFF'))
(('AKT2', 'ON'), ('RAC1', 'OFF'))
(('AKT2', 'ON'), ('YAP1', 'OFF'))
(('AKT2', 'ON'), ('PIK3CA', 'OFF'))
(('AKT2', 'ON'), ('ERK', 'OFF'))
(('AKT2', 'ON'), ('p21', 'OFF'))
(('AKT2', 'ON'), ('SMAD', 'OFF'))
(('AKT2', 'ON'), ('VIM', 'OFF'))
(('AKT2', 'ON'), ('p53', 'OFF'))
(('AKT2', 'ON'), ('p63', 'OFF'))
(('AKT2', 'ON'), ('p73', 'OFF'))
(('AKT2', 'ON'), ('miR203', 'OFF'))
(('AKT2', 'ON'), ('miR34', 'OFF'))
(('AKT2', 'ON'), ('miR200', 'OFF'))
(('AKT2', 'ON'), ('TGFbetaR', 'OFF'))
(('AKT2', 'ON'), ('FAK', 'OFF'))
(('RAC1', 'ON'), ('YAP1', 'ON'))
(('RAC1', 'ON'), ('PIK3CA', 'ON'))
(('RAC1', 'ON'), ('ERK', 'ON'))
(('RAC1', 'ON'), ('p21', 'ON'))
(('RAC1', 'ON'), ('SMAD', 'ON'))
(('RAC1', 'ON'), ('VIM', 'ON'))
(('RAC1', 'ON'), ('p53', 'ON'))
(('RAC1', 'ON'), ('p63', 'ON'))
(('RAC1', 'ON'), ('p73', 'ON'))
(('RAC1', 'ON'), ('miR203', 'ON'))
(('RAC1', 'ON'), ('miR34', 'ON'))
(('RAC1', 'ON'), ('miR200', 'ON'))
(('RAC1', 'ON'), ('TGFbetaR', 'ON'))
(('RAC1', 'ON'), ('FAK', 'ON'))
(('RAC1', 'ON'), ('AKT1', 'OFF'))
(('RAC1', 'ON'), ('CTNNB1', 'OFF'))
(('RAC1', 'ON'), ('DKK1', 'OFF'))
(('RAC1', 'ON'), ('AKT2', 'OFF'))
(('RAC1', 'ON'), ('YAP1', 'OFF'))
(('RAC1', 'ON'), ('PIK3CA', 'OFF'))
(('RAC1', 'ON'), ('ERK', 'OFF'))
(('RAC1', 'ON'), ('p21', 'OFF'))
(('RAC1', 'ON'), ('SMAD', 'OFF'))
(('RAC1', 'ON'), ('VIM', 'OFF'))
(('RAC1', 'ON'), ('p53', 'OFF'))
(('RAC1', 'ON'), ('p63', 'OFF'))
(('RAC1', 'ON'), ('p73', 'OFF'))
(('RAC1', 'ON'), ('miR203', 'OFF'))
(('RAC1', 'ON'), ('miR34', 'OFF'))
(('RAC1', 'ON'), ('miR200', 'OFF'))
(('RAC1', 'ON'), ('TGFbetaR', 'OFF'))
(('RAC1', 'ON'), ('FAK', 'OFF'))
(('YAP1', 'ON'), ('PIK3CA', 'ON'))
(('YAP1', 'ON'), ('ERK', 'ON'))
(('YAP1', 'ON'), ('p21', 'ON'))
(('YAP1', 'ON'), ('SMAD', 'ON'))
(('YAP1', 'ON'), ('VIM', 'ON'))
(('YAP1', 'ON'), ('p53', 'ON'))
(('YAP1', 'ON'), ('p63', 'ON'))
(('YAP1', 'ON'), ('p73', 'ON'))
(('YAP1', 'ON'), ('miR203', 'ON'))
(('YAP1', 'ON'), ('miR34', 'ON'))
(('YAP1', 'ON'), ('miR200', 'ON'))
(('YAP1', 'ON'), ('TGFbetaR', 'ON'))
(('YAP1', 'ON'), ('FAK', 'ON'))
(('YAP1', 'ON'), ('AKT1', 'OFF'))
(('YAP1', 'ON'), ('CTNNB1', 'OFF'))
(('YAP1', 'ON'), ('DKK1', 'OFF'))
(('YAP1', 'ON'), ('AKT2', 'OFF'))
(('YAP1', 'ON'), ('RAC1', 'OFF'))
(('YAP1', 'ON'), ('PIK3CA', 'OFF'))
(('YAP1', 'ON'), ('ERK', 'OFF'))
(('YAP1', 'ON'), ('p21', 'OFF'))
(('YAP1', 'ON'), ('SMAD', 'OFF'))
(('YAP1', 'ON'), ('VIM', 'OFF'))
(('YAP1', 'ON'), ('p53', 'OFF'))
(('YAP1', 'ON'), ('p63', 'OFF'))
(('YAP1', 'ON'), ('p73', 'OFF'))
(('YAP1', 'ON'), ('miR203', 'OFF'))
(('YAP1', 'ON'), ('miR34', 'OFF'))
(('YAP1', 'ON'), ('miR200', 'OFF'))
(('YAP1', 'ON'), ('TGFbetaR', 'OFF'))
(('YAP1', 'ON'), ('FAK', 'OFF'))
(('PIK3CA', 'ON'), ('ERK', 'ON'))
(('PIK3CA', 'ON'), ('p21', 'ON'))
(('PIK3CA', 'ON'), ('SMAD', 'ON'))
(('PIK3CA', 'ON'), ('VIM', 'ON'))
(('PIK3CA', 'ON'), ('p53', 'ON'))
(('PIK3CA', 'ON'), ('p63', 'ON'))
(('PIK3CA', 'ON'), ('p73', 'ON'))
(('PIK3CA', 'ON'), ('miR203', 'ON'))
(('PIK3CA', 'ON'), ('miR34', 'ON'))
(('PIK3CA', 'ON'), ('miR200', 'ON'))
(('PIK3CA', 'ON'), ('TGFbetaR', 'ON'))
(('PIK3CA', 'ON'), ('FAK', 'ON'))
(('PIK3CA', 'ON'), ('AKT1', 'OFF'))
(('PIK3CA', 'ON'), ('CTNNB1', 'OFF'))
(('PIK3CA', 'ON'), ('DKK1', 'OFF'))
(('PIK3CA', 'ON'), ('AKT2', 'OFF'))
(('PIK3CA', 'ON'), ('RAC1', 'OFF'))
(('PIK3CA', 'ON'), ('YAP1', 'OFF'))
(('PIK3CA', 'ON'), ('ERK', 'OFF'))
(('PIK3CA', 'ON'), ('p21', 'OFF'))
(('PIK3CA', 'ON'), ('SMAD', 'OFF'))
(('PIK3CA', 'ON'), ('VIM', 'OFF'))
(('PIK3CA', 'ON'), ('p53', 'OFF'))
(('PIK3CA', 'ON'), ('p63', 'OFF'))
(('PIK3CA', 'ON'), ('p73', 'OFF'))
(('PIK3CA', 'ON'), ('miR203', 'OFF'))
(('PIK3CA', 'ON'), ('miR34', 'OFF'))
(('PIK3CA', 'ON'), ('miR200', 'OFF'))
(('PIK3CA', 'ON'), ('TGFbetaR', 'OFF'))
(('PIK3CA', 'ON'), ('FAK', 'OFF'))
(('ERK', 'ON'), ('p21', 'ON'))
(('ERK', 'ON'), ('SMAD', 'ON'))
(('ERK', 'ON'), ('VIM', 'ON'))
(('ERK', 'ON'), ('p53', 'ON'))
(('ERK', 'ON'), ('p63', 'ON'))
(('ERK', 'ON'), ('p73', 'ON'))
(('ERK', 'ON'), ('miR203', 'ON'))
(('ERK', 'ON'), ('miR34', 'ON'))
(('ERK', 'ON'), ('miR200', 'ON'))
(('ERK', 'ON'), ('TGFbetaR', 'ON'))
(('ERK', 'ON'), ('FAK', 'ON'))
(('ERK', 'ON'), ('AKT1', 'OFF'))
(('ERK', 'ON'), ('CTNNB1', 'OFF'))
(('ERK', 'ON'), ('DKK1', 'OFF'))
(('ERK', 'ON'), ('AKT2', 'OFF'))
(('ERK', 'ON'), ('RAC1', 'OFF'))
(('ERK', 'ON'), ('YAP1', 'OFF'))
(('ERK', 'ON'), ('PIK3CA', 'OFF'))
(('ERK', 'ON'), ('p21', 'OFF'))
(('ERK', 'ON'), ('SMAD', 'OFF'))
(('ERK', 'ON'), ('VIM', 'OFF'))
(('ERK', 'ON'), ('p53', 'OFF'))
(('ERK', 'ON'), ('p63', 'OFF'))
(('ERK', 'ON'), ('p73', 'OFF'))
(('ERK', 'ON'), ('miR203', 'OFF'))
(('ERK', 'ON'), ('miR34', 'OFF'))
(('ERK', 'ON'), ('miR200', 'OFF'))
(('ERK', 'ON'), ('TGFbetaR', 'OFF'))
(('ERK', 'ON'), ('FAK', 'OFF'))
(('p21', 'ON'), ('SMAD', 'ON'))
(('p21', 'ON'), ('VIM', 'ON'))
(('p21', 'ON'), ('p53', 'ON'))
(('p21', 'ON'), ('p63', 'ON'))
(('p21', 'ON'), ('p73', 'ON'))
(('p21', 'ON'), ('miR203', 'ON'))
(('p21', 'ON'), ('miR34', 'ON'))
(('p21', 'ON'), ('miR200', 'ON'))
(('p21', 'ON'), ('TGFbetaR', 'ON'))
(('p21', 'ON'), ('FAK', 'ON'))
(('p21', 'ON'), ('AKT1', 'OFF'))
(('p21', 'ON'), ('CTNNB1', 'OFF'))
(('p21', 'ON'), ('DKK1', 'OFF'))
(('p21', 'ON'), ('AKT2', 'OFF'))
(('p21', 'ON'), ('RAC1', 'OFF'))
(('p21', 'ON'), ('YAP1', 'OFF'))
(('p21', 'ON'), ('PIK3CA', 'OFF'))
(('p21', 'ON'), ('ERK', 'OFF'))
(('p21', 'ON'), ('SMAD', 'OFF'))
(('p21', 'ON'), ('VIM', 'OFF'))
(('p21', 'ON'), ('p53', 'OFF'))
(('p21', 'ON'), ('p63', 'OFF'))
(('p21', 'ON'), ('p73', 'OFF'))
(('p21', 'ON'), ('miR203', 'OFF'))
(('p21', 'ON'), ('miR34', 'OFF'))
(('p21', 'ON'), ('miR200', 'OFF'))
(('p21', 'ON'), ('TGFbetaR', 'OFF'))
(('p21', 'ON'), ('FAK', 'OFF'))
(('SMAD', 'ON'), ('VIM', 'ON'))
(('SMAD', 'ON'), ('p53', 'ON'))
(('SMAD', 'ON'), ('p63', 'ON'))
(('SMAD', 'ON'), ('p73', 'ON'))
(('SMAD', 'ON'), ('miR203', 'ON'))
(('SMAD', 'ON'), ('miR34', 'ON'))
(('SMAD', 'ON'), ('miR200', 'ON'))
(('SMAD', 'ON'), ('TGFbetaR', 'ON'))
(('SMAD', 'ON'), ('FAK', 'ON'))
(('SMAD', 'ON'), ('AKT1', 'OFF'))
(('SMAD', 'ON'), ('CTNNB1', 'OFF'))
(('SMAD', 'ON'), ('DKK1', 'OFF'))
(('SMAD', 'ON'), ('AKT2', 'OFF'))
(('SMAD', 'ON'), ('RAC1', 'OFF'))
(('SMAD', 'ON'), ('YAP1', 'OFF'))
(('SMAD', 'ON'), ('PIK3CA', 'OFF'))
(('SMAD', 'ON'), ('ERK', 'OFF'))
(('SMAD', 'ON'), ('p21', 'OFF'))
(('SMAD', 'ON'), ('VIM', 'OFF'))
(('SMAD', 'ON'), ('p53', 'OFF'))
(('SMAD', 'ON'), ('p63', 'OFF'))
(('SMAD', 'ON'), ('p73', 'OFF'))
(('SMAD', 'ON'), ('miR203', 'OFF'))
(('SMAD', 'ON'), ('miR34', 'OFF'))
(('SMAD', 'ON'), ('miR200', 'OFF'))
(('SMAD', 'ON'), ('TGFbetaR', 'OFF'))
(('SMAD', 'ON'), ('FAK', 'OFF'))
(('VIM', 'ON'), ('p53', 'ON'))
(('VIM', 'ON'), ('p63', 'ON'))
(('VIM', 'ON'), ('p73', 'ON'))
(('VIM', 'ON'), ('miR203', 'ON'))
(('VIM', 'ON'), ('miR34', 'ON'))
(('VIM', 'ON'), ('miR200', 'ON'))
(('VIM', 'ON'), ('TGFbetaR', 'ON'))
(('VIM', 'ON'), ('FAK', 'ON'))
(('VIM', 'ON'), ('AKT1', 'OFF'))
(('VIM', 'ON'), ('CTNNB1', 'OFF'))
(('VIM', 'ON'), ('DKK1', 'OFF'))
(('VIM', 'ON'), ('AKT2', 'OFF'))
(('VIM', 'ON'), ('RAC1', 'OFF'))
(('VIM', 'ON'), ('YAP1', 'OFF'))
(('VIM', 'ON'), ('PIK3CA', 'OFF'))
(('VIM', 'ON'), ('ERK', 'OFF'))
(('VIM', 'ON'), ('p21', 'OFF'))
(('VIM', 'ON'), ('SMAD', 'OFF'))
(('VIM', 'ON'), ('p53', 'OFF'))
(('VIM', 'ON'), ('p63', 'OFF'))
(('VIM', 'ON'), ('p73', 'OFF'))
(('VIM', 'ON'), ('miR203', 'OFF'))
(('VIM', 'ON'), ('miR34', 'OFF'))
(('VIM', 'ON'), ('miR200', 'OFF'))
(('VIM', 'ON'), ('TGFbetaR', 'OFF'))
(('VIM', 'ON'), ('FAK', 'OFF'))
(('p53', 'ON'), ('p63', 'ON'))
(('p53', 'ON'), ('p73', 'ON'))
(('p53', 'ON'), ('miR203', 'ON'))
(('p53', 'ON'), ('miR34', 'ON'))
(('p53', 'ON'), ('miR200', 'ON'))
(('p53', 'ON'), ('TGFbetaR', 'ON'))
(('p53', 'ON'), ('FAK', 'ON'))
(('p53', 'ON'), ('AKT1', 'OFF'))
(('p53', 'ON'), ('CTNNB1', 'OFF'))
(('p53', 'ON'), ('DKK1', 'OFF'))
(('p53', 'ON'), ('AKT2', 'OFF'))
(('p53', 'ON'), ('RAC1', 'OFF'))
(('p53', 'ON'), ('YAP1', 'OFF'))
(('p53', 'ON'), ('PIK3CA', 'OFF'))
(('p53', 'ON'), ('ERK', 'OFF'))
(('p53', 'ON'), ('p21', 'OFF'))
(('p53', 'ON'), ('SMAD', 'OFF'))
(('p53', 'ON'), ('VIM', 'OFF'))
(('p53', 'ON'), ('p63', 'OFF'))
(('p53', 'ON'), ('p73', 'OFF'))
(('p53', 'ON'), ('miR203', 'OFF'))
(('p53', 'ON'), ('miR34', 'OFF'))
(('p53', 'ON'), ('miR200', 'OFF'))
(('p53', 'ON'), ('TGFbetaR', 'OFF'))
(('p53', 'ON'), ('FAK', 'OFF'))
(('p63', 'ON'), ('p73', 'ON'))
(('p63', 'ON'), ('miR203', 'ON'))
(('p63', 'ON'), ('miR34', 'ON'))
(('p63', 'ON'), ('miR200', 'ON'))
(('p63', 'ON'), ('TGFbetaR', 'ON'))
(('p63', 'ON'), ('FAK', 'ON'))
(('p63', 'ON'), ('AKT1', 'OFF'))
(('p63', 'ON'), ('CTNNB1', 'OFF'))
(('p63', 'ON'), ('DKK1', 'OFF'))
(('p63', 'ON'), ('AKT2', 'OFF'))
(('p63', 'ON'), ('RAC1', 'OFF'))
(('p63', 'ON'), ('YAP1', 'OFF'))
(('p63', 'ON'), ('PIK3CA', 'OFF'))
(('p63', 'ON'), ('ERK', 'OFF'))
(('p63', 'ON'), ('p21', 'OFF'))
(('p63', 'ON'), ('SMAD', 'OFF'))
(('p63', 'ON'), ('VIM', 'OFF'))
(('p63', 'ON'), ('p53', 'OFF'))
(('p63', 'ON'), ('p73', 'OFF'))
(('p63', 'ON'), ('miR203', 'OFF'))
(('p63', 'ON'), ('miR34', 'OFF'))
(('p63', 'ON'), ('miR200', 'OFF'))
(('p63', 'ON'), ('TGFbetaR', 'OFF'))
(('p63', 'ON'), ('FAK', 'OFF'))
(('p73', 'ON'), ('miR203', 'ON'))
(('p73', 'ON'), ('miR34', 'ON'))
(('p73', 'ON'), ('miR200', 'ON'))
(('p73', 'ON'), ('TGFbetaR', 'ON'))
(('p73', 'ON'), ('FAK', 'ON'))
(('p73', 'ON'), ('AKT1', 'OFF'))
(('p73', 'ON'), ('CTNNB1', 'OFF'))
(('p73', 'ON'), ('DKK1', 'OFF'))
(('p73', 'ON'), ('AKT2', 'OFF'))
(('p73', 'ON'), ('RAC1', 'OFF'))
(('p73', 'ON'), ('YAP1', 'OFF'))
(('p73', 'ON'), ('PIK3CA', 'OFF'))
(('p73', 'ON'), ('ERK', 'OFF'))
(('p73', 'ON'), ('p21', 'OFF'))
(('p73', 'ON'), ('SMAD', 'OFF'))
(('p73', 'ON'), ('VIM', 'OFF'))
(('p73', 'ON'), ('p53', 'OFF'))
(('p73', 'ON'), ('p63', 'OFF'))
(('p73', 'ON'), ('miR203', 'OFF'))
(('p73', 'ON'), ('miR34', 'OFF'))
(('p73', 'ON'), ('miR200', 'OFF'))
(('p73', 'ON'), ('TGFbetaR', 'OFF'))
(('p73', 'ON'), ('FAK', 'OFF'))
(('miR203', 'ON'), ('miR34', 'ON'))
(('miR203', 'ON'), ('miR200', 'ON'))
(('miR203', 'ON'), ('TGFbetaR', 'ON'))
(('miR203', 'ON'), ('FAK', 'ON'))
(('miR203', 'ON'), ('AKT1', 'OFF'))
(('miR203', 'ON'), ('CTNNB1', 'OFF'))
(('miR203', 'ON'), ('DKK1', 'OFF'))
(('miR203', 'ON'), ('AKT2', 'OFF'))
(('miR203', 'ON'), ('RAC1', 'OFF'))
(('miR203', 'ON'), ('YAP1', 'OFF'))
(('miR203', 'ON'), ('PIK3CA', 'OFF'))
(('miR203', 'ON'), ('ERK', 'OFF'))
(('miR203', 'ON'), ('p21', 'OFF'))
(('miR203', 'ON'), ('SMAD', 'OFF'))
(('miR203', 'ON'), ('VIM', 'OFF'))
(('miR203', 'ON'), ('p53', 'OFF'))
(('miR203', 'ON'), ('p63', 'OFF'))
(('miR203', 'ON'), ('p73', 'OFF'))
(('miR203', 'ON'), ('miR34', 'OFF'))
(('miR203', 'ON'), ('miR200', 'OFF'))
(('miR203', 'ON'), ('TGFbetaR', 'OFF'))
(('miR203', 'ON'), ('FAK', 'OFF'))
(('miR34', 'ON'), ('miR200', 'ON'))
(('miR34', 'ON'), ('TGFbetaR', 'ON'))
(('miR34', 'ON'), ('FAK', 'ON'))
(('miR34', 'ON'), ('AKT1', 'OFF'))
(('miR34', 'ON'), ('CTNNB1', 'OFF'))
(('miR34', 'ON'), ('DKK1', 'OFF'))
(('miR34', 'ON'), ('AKT2', 'OFF'))
(('miR34', 'ON'), ('RAC1', 'OFF'))
(('miR34', 'ON'), ('YAP1', 'OFF'))
(('miR34', 'ON'), ('PIK3CA', 'OFF'))
(('miR34', 'ON'), ('ERK', 'OFF'))
(('miR34', 'ON'), ('p21', 'OFF'))
(('miR34', 'ON'), ('SMAD', 'OFF'))
(('miR34', 'ON'), ('VIM', 'OFF'))
(('miR34', 'ON'), ('p53', 'OFF'))
(('miR34', 'ON'), ('p63', 'OFF'))
(('miR34', 'ON'), ('p73', 'OFF'))
(('miR34', 'ON'), ('miR203', 'OFF'))
(('miR34', 'ON'), ('miR200', 'OFF'))
(('miR34', 'ON'), ('TGFbetaR', 'OFF'))
(('miR34', 'ON'), ('FAK', 'OFF'))
(('miR200', 'ON'), ('TGFbetaR', 'ON'))
(('miR200', 'ON'), ('FAK', 'ON'))
(('miR200', 'ON'), ('AKT1', 'OFF'))
(('miR200', 'ON'), ('CTNNB1', 'OFF'))
(('miR200', 'ON'), ('DKK1', 'OFF'))
(('miR200', 'ON'), ('AKT2', 'OFF'))
(('miR200', 'ON'), ('RAC1', 'OFF'))
(('miR200', 'ON'), ('YAP1', 'OFF'))
(('miR200', 'ON'), ('PIK3CA', 'OFF'))
(('miR200', 'ON'), ('ERK', 'OFF'))
(('miR200', 'ON'), ('p21', 'OFF'))
(('miR200', 'ON'), ('SMAD', 'OFF'))
(('miR200', 'ON'), ('VIM', 'OFF'))
(('miR200', 'ON'), ('p53', 'OFF'))
(('miR200', 'ON'), ('p63', 'OFF'))
(('miR200', 'ON'), ('p73', 'OFF'))
(('miR200', 'ON'), ('miR203', 'OFF'))
(('miR200', 'ON'), ('miR34', 'OFF'))
(('miR200', 'ON'), ('TGFbetaR', 'OFF'))
(('miR200', 'ON'), ('FAK', 'OFF'))
(('TGFbetaR', 'ON'), ('FAK', 'ON'))
(('TGFbetaR', 'ON'), ('AKT1', 'OFF'))
(('TGFbetaR', 'ON'), ('CTNNB1', 'OFF'))
(('TGFbetaR', 'ON'), ('DKK1', 'OFF'))
(('TGFbetaR', 'ON'), ('AKT2', 'OFF'))
(('TGFbetaR', 'ON'), ('RAC1', 'OFF'))
(('TGFbetaR', 'ON'), ('YAP1', 'OFF'))
(('TGFbetaR', 'ON'), ('PIK3CA', 'OFF'))
(('TGFbetaR', 'ON'), ('ERK', 'OFF'))
(('TGFbetaR', 'ON'), ('p21', 'OFF'))
(('TGFbetaR', 'ON'), ('SMAD', 'OFF'))
(('TGFbetaR', 'ON'), ('VIM', 'OFF'))
(('TGFbetaR', 'ON'), ('p53', 'OFF'))
(('TGFbetaR', 'ON'), ('p63', 'OFF'))
(('TGFbetaR', 'ON'), ('p73', 'OFF'))
(('TGFbetaR', 'ON'), ('miR203', 'OFF'))
(('TGFbetaR', 'ON'), ('miR34', 'OFF'))
(('TGFbetaR', 'ON'), ('miR200', 'OFF'))
(('TGFbetaR', 'ON'), ('FAK', 'OFF'))
(('FAK', 'ON'), ('AKT1', 'OFF'))
(('FAK', 'ON'), ('CTNNB1', 'OFF'))
(('FAK', 'ON'), ('DKK1', 'OFF'))
(('FAK', 'ON'), ('AKT2', 'OFF'))
(('FAK', 'ON'), ('RAC1', 'OFF'))
(('FAK', 'ON'), ('YAP1', 'OFF'))
(('FAK', 'ON'), ('PIK3CA', 'OFF'))
(('FAK', 'ON'), ('ERK', 'OFF'))
(('FAK', 'ON'), ('p21', 'OFF'))
(('FAK', 'ON'), ('SMAD', 'OFF'))
(('FAK', 'ON'), ('VIM', 'OFF'))
(('FAK', 'ON'), ('p53', 'OFF'))
(('FAK', 'ON'), ('p63', 'OFF'))
(('FAK', 'ON'), ('p73', 'OFF'))
(('FAK', 'ON'), ('miR203', 'OFF'))
(('FAK', 'ON'), ('miR34', 'OFF'))
(('FAK', 'ON'), ('miR200', 'OFF'))
(('FAK', 'ON'), ('TGFbetaR', 'OFF'))
(('AKT1', 'OFF'), ('CTNNB1', 'OFF'))
(('AKT1', 'OFF'), ('DKK1', 'OFF'))
(('AKT1', 'OFF'), ('AKT2', 'OFF'))
(('AKT1', 'OFF'), ('RAC1', 'OFF'))
(('AKT1', 'OFF'), ('YAP1', 'OFF'))
(('AKT1', 'OFF'), ('PIK3CA', 'OFF'))
(('AKT1', 'OFF'), ('ERK', 'OFF'))
(('AKT1', 'OFF'), ('p21', 'OFF'))
(('AKT1', 'OFF'), ('SMAD', 'OFF'))
(('AKT1', 'OFF'), ('VIM', 'OFF'))
(('AKT1', 'OFF'), ('p53', 'OFF'))
(('AKT1', 'OFF'), ('p63', 'OFF'))
(('AKT1', 'OFF'), ('p73', 'OFF'))
(('AKT1', 'OFF'), ('miR203', 'OFF'))
(('AKT1', 'OFF'), ('miR34', 'OFF'))
(('AKT1', 'OFF'), ('miR200', 'OFF'))
(('AKT1', 'OFF'), ('TGFbetaR', 'OFF'))
(('AKT1', 'OFF'), ('FAK', 'OFF'))
(('CTNNB1', 'OFF'), ('DKK1', 'OFF'))
(('CTNNB1', 'OFF'), ('AKT2', 'OFF'))
(('CTNNB1', 'OFF'), ('RAC1', 'OFF'))
(('CTNNB1', 'OFF'), ('YAP1', 'OFF'))
(('CTNNB1', 'OFF'), ('PIK3CA', 'OFF'))
(('CTNNB1', 'OFF'), ('ERK', 'OFF'))
(('CTNNB1', 'OFF'), ('p21', 'OFF'))
(('CTNNB1', 'OFF'), ('SMAD', 'OFF'))
(('CTNNB1', 'OFF'), ('VIM', 'OFF'))
(('CTNNB1', 'OFF'), ('p53', 'OFF'))
(('CTNNB1', 'OFF'), ('p63', 'OFF'))
(('CTNNB1', 'OFF'), ('p73', 'OFF'))
(('CTNNB1', 'OFF'), ('miR203', 'OFF'))
(('CTNNB1', 'OFF'), ('miR34', 'OFF'))
(('CTNNB1', 'OFF'), ('miR200', 'OFF'))
(('CTNNB1', 'OFF'), ('TGFbetaR', 'OFF'))
(('CTNNB1', 'OFF'), ('FAK', 'OFF'))
(('DKK1', 'OFF'), ('AKT2', 'OFF'))
(('DKK1', 'OFF'), ('RAC1', 'OFF'))
(('DKK1', 'OFF'), ('YAP1', 'OFF'))
(('DKK1', 'OFF'), ('PIK3CA', 'OFF'))
(('DKK1', 'OFF'), ('ERK', 'OFF'))
(('DKK1', 'OFF'), ('p21', 'OFF'))
(('DKK1', 'OFF'), ('SMAD', 'OFF'))
(('DKK1', 'OFF'), ('VIM', 'OFF'))
(('DKK1', 'OFF'), ('p53', 'OFF'))
(('DKK1', 'OFF'), ('p63', 'OFF'))
(('DKK1', 'OFF'), ('p73', 'OFF'))
(('DKK1', 'OFF'), ('miR203', 'OFF'))
(('DKK1', 'OFF'), ('miR34', 'OFF'))
(('DKK1', 'OFF'), ('miR200', 'OFF'))
(('DKK1', 'OFF'), ('TGFbetaR', 'OFF'))
(('DKK1', 'OFF'), ('FAK', 'OFF'))
(('AKT2', 'OFF'), ('RAC1', 'OFF'))
(('AKT2', 'OFF'), ('YAP1', 'OFF'))
(('AKT2', 'OFF'), ('PIK3CA', 'OFF'))
(('AKT2', 'OFF'), ('ERK', 'OFF'))
(('AKT2', 'OFF'), ('p21', 'OFF'))
(('AKT2', 'OFF'), ('SMAD', 'OFF'))
(('AKT2', 'OFF'), ('VIM', 'OFF'))
(('AKT2', 'OFF'), ('p53', 'OFF'))
(('AKT2', 'OFF'), ('p63', 'OFF'))
(('AKT2', 'OFF'), ('p73', 'OFF'))
(('AKT2', 'OFF'), ('miR203', 'OFF'))
(('AKT2', 'OFF'), ('miR34', 'OFF'))
(('AKT2', 'OFF'), ('miR200', 'OFF'))
(('AKT2', 'OFF'), ('TGFbetaR', 'OFF'))
(('AKT2', 'OFF'), ('FAK', 'OFF'))
(('RAC1', 'OFF'), ('YAP1', 'OFF'))
(('RAC1', 'OFF'), ('PIK3CA', 'OFF'))
(('RAC1', 'OFF'), ('ERK', 'OFF'))
(('RAC1', 'OFF'), ('p21', 'OFF'))
(('RAC1', 'OFF'), ('SMAD', 'OFF'))
(('RAC1', 'OFF'), ('VIM', 'OFF'))
(('RAC1', 'OFF'), ('p53', 'OFF'))
(('RAC1', 'OFF'), ('p63', 'OFF'))
(('RAC1', 'OFF'), ('p73', 'OFF'))
(('RAC1', 'OFF'), ('miR203', 'OFF'))
(('RAC1', 'OFF'), ('miR34', 'OFF'))
(('RAC1', 'OFF'), ('miR200', 'OFF'))
(('RAC1', 'OFF'), ('TGFbetaR', 'OFF'))
(('RAC1', 'OFF'), ('FAK', 'OFF'))
(('YAP1', 'OFF'), ('PIK3CA', 'OFF'))
(('YAP1', 'OFF'), ('ERK', 'OFF'))
(('YAP1', 'OFF'), ('p21', 'OFF'))
(('YAP1', 'OFF'), ('SMAD', 'OFF'))
(('YAP1', 'OFF'), ('VIM', 'OFF'))
(('YAP1', 'OFF'), ('p53', 'OFF'))
(('YAP1', 'OFF'), ('p63', 'OFF'))
(('YAP1', 'OFF'), ('p73', 'OFF'))
(('YAP1', 'OFF'), ('miR203', 'OFF'))
(('YAP1', 'OFF'), ('miR34', 'OFF'))
(('YAP1', 'OFF'), ('miR200', 'OFF'))
(('YAP1', 'OFF'), ('TGFbetaR', 'OFF'))
(('YAP1', 'OFF'), ('FAK', 'OFF'))
(('PIK3CA', 'OFF'), ('ERK', 'OFF'))
(('PIK3CA', 'OFF'), ('p21', 'OFF'))
(('PIK3CA', 'OFF'), ('SMAD', 'OFF'))
(('PIK3CA', 'OFF'), ('VIM', 'OFF'))
(('PIK3CA', 'OFF'), ('p53', 'OFF'))
(('PIK3CA', 'OFF'), ('p63', 'OFF'))
(('PIK3CA', 'OFF'), ('p73', 'OFF'))
(('PIK3CA', 'OFF'), ('miR203', 'OFF'))
(('PIK3CA', 'OFF'), ('miR34', 'OFF'))
(('PIK3CA', 'OFF'), ('miR200', 'OFF'))
(('PIK3CA', 'OFF'), ('TGFbetaR', 'OFF'))
(('PIK3CA', 'OFF'), ('FAK', 'OFF'))
(('ERK', 'OFF'), ('p21', 'OFF'))
(('ERK', 'OFF'), ('SMAD', 'OFF'))
(('ERK', 'OFF'), ('VIM', 'OFF'))
(('ERK', 'OFF'), ('p53', 'OFF'))
(('ERK', 'OFF'), ('p63', 'OFF'))
(('ERK', 'OFF'), ('p73', 'OFF'))
(('ERK', 'OFF'), ('miR203', 'OFF'))
(('ERK', 'OFF'), ('miR34', 'OFF'))
(('ERK', 'OFF'), ('miR200', 'OFF'))
(('ERK', 'OFF'), ('TGFbetaR', 'OFF'))
(('ERK', 'OFF'), ('FAK', 'OFF'))
(('p21', 'OFF'), ('SMAD', 'OFF'))
(('p21', 'OFF'), ('VIM', 'OFF'))
(('p21', 'OFF'), ('p53', 'OFF'))
(('p21', 'OFF'), ('p63', 'OFF'))
(('p21', 'OFF'), ('p73', 'OFF'))
(('p21', 'OFF'), ('miR203', 'OFF'))
(('p21', 'OFF'), ('miR34', 'OFF'))
(('p21', 'OFF'), ('miR200', 'OFF'))
(('p21', 'OFF'), ('TGFbetaR', 'OFF'))
(('p21', 'OFF'), ('FAK', 'OFF'))
(('SMAD', 'OFF'), ('VIM', 'OFF'))
(('SMAD', 'OFF'), ('p53', 'OFF'))
(('SMAD', 'OFF'), ('p63', 'OFF'))
(('SMAD', 'OFF'), ('p73', 'OFF'))
(('SMAD', 'OFF'), ('miR203', 'OFF'))
(('SMAD', 'OFF'), ('miR34', 'OFF'))
(('SMAD', 'OFF'), ('miR200', 'OFF'))
(('SMAD', 'OFF'), ('TGFbetaR', 'OFF'))
(('SMAD', 'OFF'), ('FAK', 'OFF'))
(('VIM', 'OFF'), ('p53', 'OFF'))
(('VIM', 'OFF'), ('p63', 'OFF'))
(('VIM', 'OFF'), ('p73', 'OFF'))
(('VIM', 'OFF'), ('miR203', 'OFF'))
(('VIM', 'OFF'), ('miR34', 'OFF'))
(('VIM', 'OFF'), ('miR200', 'OFF'))
(('VIM', 'OFF'), ('TGFbetaR', 'OFF'))
(('VIM', 'OFF'), ('FAK', 'OFF'))
(('p53', 'OFF'), ('p63', 'OFF'))
(('p53', 'OFF'), ('p73', 'OFF'))
(('p53', 'OFF'), ('miR203', 'OFF'))
(('p53', 'OFF'), ('miR34', 'OFF'))
(('p53', 'OFF'), ('miR200', 'OFF'))
(('p53', 'OFF'), ('TGFbetaR', 'OFF'))
(('p53', 'OFF'), ('FAK', 'OFF'))
(('p63', 'OFF'), ('p73', 'OFF'))
(('p63', 'OFF'), ('miR203', 'OFF'))
(('p63', 'OFF'), ('miR34', 'OFF'))
(('p63', 'OFF'), ('miR200', 'OFF'))
(('p63', 'OFF'), ('TGFbetaR', 'OFF'))
(('p63', 'OFF'), ('FAK', 'OFF'))
(('p73', 'OFF'), ('miR203', 'OFF'))
(('p73', 'OFF'), ('miR34', 'OFF'))
(('p73', 'OFF'), ('miR200', 'OFF'))
(('p73', 'OFF'), ('TGFbetaR', 'OFF'))
(('p73', 'OFF'), ('FAK', 'OFF'))
(('miR203', 'OFF'), ('miR34', 'OFF'))
(('miR203', 'OFF'), ('miR200', 'OFF'))
(('miR203', 'OFF'), ('TGFbetaR', 'OFF'))
(('miR203', 'OFF'), ('FAK', 'OFF'))
(('miR34', 'OFF'), ('miR200', 'OFF'))
(('miR34', 'OFF'), ('TGFbetaR', 'OFF'))
(('miR34', 'OFF'), ('FAK', 'OFF'))
(('miR200', 'OFF'), ('TGFbetaR', 'OFF'))
(('miR200', 'OFF'), ('FAK', 'OFF'))
(('TGFbetaR', 'OFF'), ('FAK', 'OFF'))
filtered_res = filter_sensititivy(res_single, node="ECM_degrad", maximum=0)
print(filtered_res.keys())
dict_keys([('AKT1', 'ON'), ('CTNNB1', 'ON'), ('DKK1', 'ON'), ('AKT2', 'ON'), ('RAC1', 'ON'), ('YAP1', 'ON'), ('PIK3CA', 'ON'), ('ERK', 'ON'), ('p21', 'ON'), ('SMAD', 'ON'), ('VIM', 'ON'), ('p53', 'ON'), ('p73', 'ON'), ('miR203', 'ON'), ('miR34', 'ON'), ('miR200', 'ON'), ('TGFbetaR', 'ON'), ('FAK', 'ON'), ('AKT1', 'OFF'), ('CTNNB1', 'OFF'), ('DKK1', 'OFF'), ('AKT2', 'OFF'), ('RAC1', 'OFF'), ('YAP1', 'OFF'), ('PIK3CA', 'OFF'), ('ERK', 'OFF'), ('p21', 'OFF'), ('SMAD', 'OFF'), ('VIM', 'OFF'), ('p53', 'OFF'), ('p63', 'OFF'), ('p73', 'OFF'), ('miR203', 'OFF'), ('miR34', 'OFF'), ('miR200', 'OFF'), ('TGFbetaR', 'OFF'), ('FAK', 'OFF')])
filtered_res1 = filter_sensititivy(res_single, node="EMT", maximum=0)
print(filtered_res1.keys())
dict_keys([('p53', 'ON'), ('miR34', 'ON')])
filtered_res2 = filter_sensititivy(res_single, node="Migration", maximum=0)
print(filtered_res2.keys())
dict_keys([('AKT1', 'ON'), ('CTNNB1', 'ON'), ('p53', 'ON'), ('p63', 'ON'), ('p73', 'ON'), ('miR203', 'ON'), ('miR34', 'ON'), ('miR200', 'ON'), ('AKT2', 'OFF'), ('ERK', 'OFF'), ('SMAD', 'OFF'), ('VIM', 'OFF')])
for elem in filtered_res:
for elem2 in filtered_res1:
for elem3 in filtered_res2:
if elem == elem2 and elem2 == elem3:
print(elem)
('p53', 'ON')
('miR34', 'ON')
Conclusion: among all of the possible mutations, in the perfect condition for proliferation, the common candidates to stop both MMPs release, Migration and EMT phenotypes are p53, p73 and miR34. Those are possible gene that can be overexpressed within the PhysiBoSS simulation, to see if effectively they block the invasion process.
filtered_res = filter_sensititivy(res_double, node="EMT", maximum=0)
print(filtered_res.keys())
dict_keys([(('AKT1', 'ON'), ('p53', 'ON')), (('DKK1', 'ON'), ('p53', 'ON')), (('DKK1', 'ON'), ('miR34', 'ON')), (('AKT2', 'ON'), ('p53', 'ON')), (('RAC1', 'ON'), ('p53', 'ON')), (('YAP1', 'ON'), ('p53', 'ON')), (('YAP1', 'ON'), ('miR34', 'ON')), (('PIK3CA', 'ON'), ('p53', 'ON')), (('PIK3CA', 'ON'), ('miR34', 'ON')), (('ERK', 'ON'), ('p53', 'ON')), (('ERK', 'ON'), ('miR34', 'ON')), (('p21', 'ON'), ('p53', 'ON')), (('SMAD', 'ON'), ('p53', 'ON')), (('SMAD', 'ON'), ('miR34', 'ON')), (('VIM', 'ON'), ('p53', 'ON')), (('VIM', 'ON'), ('miR34', 'ON')), (('p53', 'ON'), ('p63', 'ON')), (('p53', 'ON'), ('p73', 'ON')), (('p53', 'ON'), ('miR203', 'ON')), (('p53', 'ON'), ('miR34', 'ON')), (('p53', 'ON'), ('miR200', 'ON')), (('p53', 'ON'), ('TGFbetaR', 'ON')), (('p53', 'ON'), ('AKT1', 'OFF')), (('p53', 'ON'), ('CTNNB1', 'OFF')), (('p53', 'ON'), ('DKK1', 'OFF')), (('p53', 'ON'), ('AKT2', 'OFF')), (('p53', 'ON'), ('RAC1', 'OFF')), (('p53', 'ON'), ('YAP1', 'OFF')), (('p53', 'ON'), ('PIK3CA', 'OFF')), (('p53', 'ON'), ('ERK', 'OFF')), (('p53', 'ON'), ('p21', 'OFF')), (('p53', 'ON'), ('SMAD', 'OFF')), (('p53', 'ON'), ('VIM', 'OFF')), (('p53', 'ON'), ('p63', 'OFF')), (('p53', 'ON'), ('p73', 'OFF')), (('p53', 'ON'), ('miR203', 'OFF')), (('p53', 'ON'), ('miR34', 'OFF')), (('p53', 'ON'), ('miR200', 'OFF')), (('p53', 'ON'), ('TGFbetaR', 'OFF')), (('p53', 'ON'), ('FAK', 'OFF')), (('p63', 'ON'), ('FAK', 'OFF')), (('p73', 'ON'), ('FAK', 'OFF')), (('miR34', 'ON'), ('AKT1', 'OFF')), (('miR34', 'ON'), ('RAC1', 'OFF')), (('miR34', 'ON'), ('YAP1', 'OFF')), (('miR34', 'ON'), ('PIK3CA', 'OFF')), (('miR34', 'ON'), ('ERK', 'OFF')), (('miR34', 'ON'), ('p21', 'OFF')), (('miR34', 'ON'), ('SMAD', 'OFF')), (('miR34', 'ON'), ('p63', 'OFF')), (('miR34', 'ON'), ('p73', 'OFF')), (('miR34', 'ON'), ('miR200', 'OFF')), (('miR34', 'ON'), ('FAK', 'OFF')), (('miR200', 'ON'), ('FAK', 'OFF'))])
filtered_res1 = filter_sensititivy(res_double, node="ECM_degrad", maximum=0)
print(filtered_res.keys())
dict_keys([(('AKT1', 'ON'), ('p53', 'ON')), (('DKK1', 'ON'), ('p53', 'ON')), (('DKK1', 'ON'), ('miR34', 'ON')), (('AKT2', 'ON'), ('p53', 'ON')), (('RAC1', 'ON'), ('p53', 'ON')), (('YAP1', 'ON'), ('p53', 'ON')), (('YAP1', 'ON'), ('miR34', 'ON')), (('PIK3CA', 'ON'), ('p53', 'ON')), (('PIK3CA', 'ON'), ('miR34', 'ON')), (('ERK', 'ON'), ('p53', 'ON')), (('ERK', 'ON'), ('miR34', 'ON')), (('p21', 'ON'), ('p53', 'ON')), (('SMAD', 'ON'), ('p53', 'ON')), (('SMAD', 'ON'), ('miR34', 'ON')), (('VIM', 'ON'), ('p53', 'ON')), (('VIM', 'ON'), ('miR34', 'ON')), (('p53', 'ON'), ('p63', 'ON')), (('p53', 'ON'), ('p73', 'ON')), (('p53', 'ON'), ('miR203', 'ON')), (('p53', 'ON'), ('miR34', 'ON')), (('p53', 'ON'), ('miR200', 'ON')), (('p53', 'ON'), ('TGFbetaR', 'ON')), (('p53', 'ON'), ('AKT1', 'OFF')), (('p53', 'ON'), ('CTNNB1', 'OFF')), (('p53', 'ON'), ('DKK1', 'OFF')), (('p53', 'ON'), ('AKT2', 'OFF')), (('p53', 'ON'), ('RAC1', 'OFF')), (('p53', 'ON'), ('YAP1', 'OFF')), (('p53', 'ON'), ('PIK3CA', 'OFF')), (('p53', 'ON'), ('ERK', 'OFF')), (('p53', 'ON'), ('p21', 'OFF')), (('p53', 'ON'), ('SMAD', 'OFF')), (('p53', 'ON'), ('VIM', 'OFF')), (('p53', 'ON'), ('p63', 'OFF')), (('p53', 'ON'), ('p73', 'OFF')), (('p53', 'ON'), ('miR203', 'OFF')), (('p53', 'ON'), ('miR34', 'OFF')), (('p53', 'ON'), ('miR200', 'OFF')), (('p53', 'ON'), ('TGFbetaR', 'OFF')), (('p53', 'ON'), ('FAK', 'OFF')), (('p63', 'ON'), ('FAK', 'OFF')), (('p73', 'ON'), ('FAK', 'OFF')), (('miR34', 'ON'), ('AKT1', 'OFF')), (('miR34', 'ON'), ('RAC1', 'OFF')), (('miR34', 'ON'), ('YAP1', 'OFF')), (('miR34', 'ON'), ('PIK3CA', 'OFF')), (('miR34', 'ON'), ('ERK', 'OFF')), (('miR34', 'ON'), ('p21', 'OFF')), (('miR34', 'ON'), ('SMAD', 'OFF')), (('miR34', 'ON'), ('p63', 'OFF')), (('miR34', 'ON'), ('p73', 'OFF')), (('miR34', 'ON'), ('miR200', 'OFF')), (('miR34', 'ON'), ('FAK', 'OFF')), (('miR200', 'ON'), ('FAK', 'OFF'))])
filtered_res2 = filter_sensititivy(res_double, node="Migration", maximum=0)
print(filtered_res.keys())
dict_keys([(('AKT1', 'ON'), ('p53', 'ON')), (('DKK1', 'ON'), ('p53', 'ON')), (('DKK1', 'ON'), ('miR34', 'ON')), (('AKT2', 'ON'), ('p53', 'ON')), (('RAC1', 'ON'), ('p53', 'ON')), (('YAP1', 'ON'), ('p53', 'ON')), (('YAP1', 'ON'), ('miR34', 'ON')), (('PIK3CA', 'ON'), ('p53', 'ON')), (('PIK3CA', 'ON'), ('miR34', 'ON')), (('ERK', 'ON'), ('p53', 'ON')), (('ERK', 'ON'), ('miR34', 'ON')), (('p21', 'ON'), ('p53', 'ON')), (('SMAD', 'ON'), ('p53', 'ON')), (('SMAD', 'ON'), ('miR34', 'ON')), (('VIM', 'ON'), ('p53', 'ON')), (('VIM', 'ON'), ('miR34', 'ON')), (('p53', 'ON'), ('p63', 'ON')), (('p53', 'ON'), ('p73', 'ON')), (('p53', 'ON'), ('miR203', 'ON')), (('p53', 'ON'), ('miR34', 'ON')), (('p53', 'ON'), ('miR200', 'ON')), (('p53', 'ON'), ('TGFbetaR', 'ON')), (('p53', 'ON'), ('AKT1', 'OFF')), (('p53', 'ON'), ('CTNNB1', 'OFF')), (('p53', 'ON'), ('DKK1', 'OFF')), (('p53', 'ON'), ('AKT2', 'OFF')), (('p53', 'ON'), ('RAC1', 'OFF')), (('p53', 'ON'), ('YAP1', 'OFF')), (('p53', 'ON'), ('PIK3CA', 'OFF')), (('p53', 'ON'), ('ERK', 'OFF')), (('p53', 'ON'), ('p21', 'OFF')), (('p53', 'ON'), ('SMAD', 'OFF')), (('p53', 'ON'), ('VIM', 'OFF')), (('p53', 'ON'), ('p63', 'OFF')), (('p53', 'ON'), ('p73', 'OFF')), (('p53', 'ON'), ('miR203', 'OFF')), (('p53', 'ON'), ('miR34', 'OFF')), (('p53', 'ON'), ('miR200', 'OFF')), (('p53', 'ON'), ('TGFbetaR', 'OFF')), (('p53', 'ON'), ('FAK', 'OFF')), (('p63', 'ON'), ('FAK', 'OFF')), (('p73', 'ON'), ('FAK', 'OFF')), (('miR34', 'ON'), ('AKT1', 'OFF')), (('miR34', 'ON'), ('RAC1', 'OFF')), (('miR34', 'ON'), ('YAP1', 'OFF')), (('miR34', 'ON'), ('PIK3CA', 'OFF')), (('miR34', 'ON'), ('ERK', 'OFF')), (('miR34', 'ON'), ('p21', 'OFF')), (('miR34', 'ON'), ('SMAD', 'OFF')), (('miR34', 'ON'), ('p63', 'OFF')), (('miR34', 'ON'), ('p73', 'OFF')), (('miR34', 'ON'), ('miR200', 'OFF')), (('miR34', 'ON'), ('FAK', 'OFF')), (('miR200', 'ON'), ('FAK', 'OFF'))])
filtered_res1 = filter_sensititivy(res_double, node="Cell_growth", maximum=0)
print(filtered_res.keys())
dict_keys([(('AKT1', 'ON'), ('p53', 'ON')), (('DKK1', 'ON'), ('p53', 'ON')), (('DKK1', 'ON'), ('miR34', 'ON')), (('AKT2', 'ON'), ('p53', 'ON')), (('RAC1', 'ON'), ('p53', 'ON')), (('YAP1', 'ON'), ('p53', 'ON')), (('YAP1', 'ON'), ('miR34', 'ON')), (('PIK3CA', 'ON'), ('p53', 'ON')), (('PIK3CA', 'ON'), ('miR34', 'ON')), (('ERK', 'ON'), ('p53', 'ON')), (('ERK', 'ON'), ('miR34', 'ON')), (('p21', 'ON'), ('p53', 'ON')), (('SMAD', 'ON'), ('p53', 'ON')), (('SMAD', 'ON'), ('miR34', 'ON')), (('VIM', 'ON'), ('p53', 'ON')), (('VIM', 'ON'), ('miR34', 'ON')), (('p53', 'ON'), ('p63', 'ON')), (('p53', 'ON'), ('p73', 'ON')), (('p53', 'ON'), ('miR203', 'ON')), (('p53', 'ON'), ('miR34', 'ON')), (('p53', 'ON'), ('miR200', 'ON')), (('p53', 'ON'), ('TGFbetaR', 'ON')), (('p53', 'ON'), ('AKT1', 'OFF')), (('p53', 'ON'), ('CTNNB1', 'OFF')), (('p53', 'ON'), ('DKK1', 'OFF')), (('p53', 'ON'), ('AKT2', 'OFF')), (('p53', 'ON'), ('RAC1', 'OFF')), (('p53', 'ON'), ('YAP1', 'OFF')), (('p53', 'ON'), ('PIK3CA', 'OFF')), (('p53', 'ON'), ('ERK', 'OFF')), (('p53', 'ON'), ('p21', 'OFF')), (('p53', 'ON'), ('SMAD', 'OFF')), (('p53', 'ON'), ('VIM', 'OFF')), (('p53', 'ON'), ('p63', 'OFF')), (('p53', 'ON'), ('p73', 'OFF')), (('p53', 'ON'), ('miR203', 'OFF')), (('p53', 'ON'), ('miR34', 'OFF')), (('p53', 'ON'), ('miR200', 'OFF')), (('p53', 'ON'), ('TGFbetaR', 'OFF')), (('p53', 'ON'), ('FAK', 'OFF')), (('p63', 'ON'), ('FAK', 'OFF')), (('p73', 'ON'), ('FAK', 'OFF')), (('miR34', 'ON'), ('AKT1', 'OFF')), (('miR34', 'ON'), ('RAC1', 'OFF')), (('miR34', 'ON'), ('YAP1', 'OFF')), (('miR34', 'ON'), ('PIK3CA', 'OFF')), (('miR34', 'ON'), ('ERK', 'OFF')), (('miR34', 'ON'), ('p21', 'OFF')), (('miR34', 'ON'), ('SMAD', 'OFF')), (('miR34', 'ON'), ('p63', 'OFF')), (('miR34', 'ON'), ('p73', 'OFF')), (('miR34', 'ON'), ('miR200', 'OFF')), (('miR34', 'ON'), ('FAK', 'OFF')), (('miR200', 'ON'), ('FAK', 'OFF'))])
for elem in filtered_res:
for elem2 in filtered_res1:
for elem3 in filtered_res2:
if elem == elem2 and elem2 == elem3:
print(elem)
(('AKT1', 'ON'), ('p53', 'ON'))
(('p21', 'ON'), ('p53', 'ON'))
(('p53', 'ON'), ('ERK', 'OFF'))
(('miR34', 'ON'), ('ERK', 'OFF'))
Conclusion: among the possible double mutations, the ones shown in the previous cell, can block both the differentiation of epithelial cells into mesenchymal, and inhibit the growth of the tumor. Thus, these are possible candidates to simulate on PhysiBoSS, to check if they effectively stop the tumor development.